﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Qunar
{
    ///<remarks>
    /// 自有政策单程
    /// <remarks/>
    [System.SerializableAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "policylist", IsNullable = false)]
    public class policylistOneWay
    {
        /// <remarks/>
        public List<policylistPolicyOneWay> policy { get; set; } = new List<policylistPolicyOneWay>();
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public class policylistPolicyOneWay
    {
        /// <summary>
        /// 文件编号 否 只供代理商标记政策信息
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string policyCode { get; set; }
        /// <summary>
        /// 外部政策ID 否 外部政策ID，最大50个字符
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string outPolicyId { get; set; }

        /// <summary>
        /// 航空公司 是 只能输入一个航司
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string carrier { get; set; }

        /// <summary>
        /// 起飞机场 是 最多100个起飞，多个机场用，分隔。
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string dep { get; set; }

        /// <summary>
        /// 到达机场 是 最多100个到达，多个到达机场用，分隔
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string arr { get; set; }

        /// <summary>
        /// 适用航班类型 是 0代表不适用，1代表适用，2代表全部
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public byte flightnoType { get; set; }

        /// <summary>
        /// 航班号 否 可输入格式如：
        ///CA888,代表单个航班；CA000 ~CA999代表0-999之间的所有航班号；多个之间用英文逗号分隔。最多700个字符。
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string flightnos { get; set; }

        /// <summary> 
        /// 旅行开始日期 是 输入格式2013-09-09
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute(DataType = "date")]
        public System.DateTime flightStartDate { get; set; }
        /// <summary>
        /// 旅行结束日期 是 输入格式2013-09-09
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute(DataType = "date")]
        public System.DateTime flightEndDate { get; set; }

        /// <summary>
        /// 旅行排除日期 否 可输入格式如：2013-09-11~2013-10-10代表从2013.09.11至2013.10.10；2013-09-10代表不适用单一天；多个日期段用英文逗号分割，最多200个字符。
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string flightExcludeDate { get; set; }
        /// <summary>
        /// 销售开始日期 是 输入格式2013-09-09
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute(DataType = "date")]
        public System.DateTime saleStartDate { get; set; }

        /// <summary>
        /// 销售结束日期 是 输入格式2013-09-09
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute(DataType = "date")]
        public System.DateTime saleEndDate { get; set; }
        /// <summary>
        /// 适用班期 是 输入格式：0,1,2,3,4,5,60为周日，1-6分别代表周一到周六,多个用英文逗号分隔
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string weekdays { get; set; }


        /// <summary>
        /// 舱位 是 只能输入一个舱位
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string cabin { get; set; }

        /// <summary>
        /// 乘客类型 是 1代表普通成人，2代表留学生
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public byte passengerType { get; set; }
        /// <summary>
        /// 销售票面 是 必须10的整数倍
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ushort ticketPrice { get; set; }

        /// <summary>
        /// 是否为XSFSD运价 是 0代表否，1代表是
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public byte fareType { get; set; }

        /// <summary>
        /// 是否含税总价 是 0代表否，1代表是
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public byte containTax { get; set; }

        /// <summary>
        /// 儿童售价 否 可不输入，代表此政策不销售儿童票；可输入大于0的正整数及百分比，例如：2000或70%。       当"乘客类型"输入留学生时，此项输入无效。

        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ushort childPrice { get; set; }

        /// <summary>
        /// 返点 是 返点值，3表示返3个点。   结算价=票面价-票面价* 返点+留钱
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public byte returnPercent { get; set; }
        /// <summary>
        /// 留钱 是 留钱值，-15表示返15元. 结算价=票面价-票面价* 返点+留钱
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public byte addMoney { get; set; }

        /// <summary>
        /// 提前出票时限 否 提前出票时间限制，以天为单位。可为空，如果有值，必须大于0最大365
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public byte beforeDays { get; set; }
        /// <summary>
        /// 最晚出票时限	否	可为空，如果有值，必须大于0
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public byte inDays { get; set; }
        /// <summary>
        /// 是否校验AV状态	否	0代表否，1代表是
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public byte checkAv { get; set; }
        /// <summary>
        /// 是否创建PNR	否	0代表否，1代表是
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public byte createPnr { get; set; }
        /// <summary>
        /// 是否校验票面价	否	0代表否，1代表是
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public byte checkPrice { get; set; }
        /// <summary>
        /// 是否支持共享航班	否	0代表否，1代表是
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public byte codeshareValid { get; set; }
        /// <summary>
        /// 是否显示为申请	否	0代表否，1代表是
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public byte apply { get; set; }
        /// <summary>
        /// 可售座位数	否	可为空，代表无效，输入的值必须为大于0的整数。
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public byte restSeat { get; set; }
        /// <summary>
        /// 机票成本价	否
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ushort cost { get; set; }

        /// <summary>
        /// 是否允许退票	是	0代表否，1代表是
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public byte hasRefund { get; set; }

        /// <summary>
        /// 退票费规定 fou ,可不输入，当允许退票为是，则必填。输入格式举例：200-72-300-48-1000-0-*，代表72小时前退票手续费200；48小时到72小时之间，退票手续费费300；飞机起飞不足48小时，手续费1000；起飞后不予退票; 若退票规定为不予退票直接输入*
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string refundCond { get; set; }

        //[System.Xml.Serialization.XmlAttributeAttribute()]
        //public string refund { get; set; }

        /// <summary>
        /// 部分退票规定	否	0代表不允许，1代表允许
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public byte partRefund { get; set; }
        /// <summary>
        /// 部分退票费用	否	输入非负整数
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ushort partRefundPrice { get; set; }
        /// <summary>
        /// 是否允许改期	是	0代表否，1代表是
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ushort hasChangeCond { get; set; }

        /// <summary>
        /// 改期规定	否	可不输入，当允许改期为是，则必填。输入格式举例：
        ///200-72-300-48-1000-0-*，代表72小时前改期手续费200；48小时到72小时之间，改期手续费300；飞机起飞不足48小时，手续费1000；起飞后不予改期；
        ///若改期规定为不予改期直接输入*
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ushort changeCond { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public byte hasEndorse { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string endorse { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public byte partEndorse { get; set; }
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ushort partEndorsePrice { get; set; }

        /// <summary>
        /// 签转规定	是	0代表不允许，1代表允许
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public byte endorsement { get; set; }

        /// <summary>
        /// 行李额	是	自有单程输入样例：1-23，表示1件行李，每件23kg； 输入“-”代表按照航司规定执行 输入空表示不提供免费行李额
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string baggage { get; set; }

        /// <summary>
        /// 行李额	是	自有单程输入样例：1-23，表示1件行李，每件23kg； 输入“-”代表按照航司规定执行 输入空表示不提供免费行李额
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string baggageCond { get; set; }
        /// <summary>
        /// 是否有noshow规定	是	0代表否，1代表是
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public byte hasNoshow { get; set; }

        /// <summary>
        /// Noshow时限	否	输入正整数
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public byte noShowLimitTime { get; set; }

        /// <summary>
        /// Noshow罚金	否	输入非负整数
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public byte penalty { get; set; }

        /// <summary>
        /// Noshow特殊规则	否	0代表无，1代表不允许提票，2代表不允许改期，3代表不允许退票和改期
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public byte specialNoshow { get; set; }

        /// <summary>
        /// 出票地	是	出票地，只可输入一个区域可以为空，默认表示“中国大陆”输入国家二字码例如：TH
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string posArea { get; set; }

        /// <summary>
        /// 其他说明	否	其他说明，最大300个字符
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string addtionalDesc { get; set; }

        /// <summary>
        /// 政策备注	否	政策备注，最大300个字符
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string remark { get; set; }

        /// <summary>
        /// 乘客国籍类型	是	乘客国籍类型:全部/适用/不适用
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string nationType { get; set; }

        /// <summary>
        /// 乘客国籍	否	乘客国籍，可以为空，若输入则为国家二字码，多个用,分隔，最多支持五个国家或地区
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string nationalityType { get; set; }

        /// <summary>
        /// 适用乘客年龄	否	适用乘客年龄，可以为空，输入格式为12~59，表示适用于12~59岁的乘客预订，年龄限制范围为12~99，仅支持录入一个年龄段
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string suitAge { get; set; }

        /// <summary>
        /// 报销凭证类型	是	报销凭证类型：行程单/旅行发票        如果该字段没有，或者为空，默认为行程单类型
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string expressType { get; set; }

        /// <summary>
        /// GDS来源	是	GDS类型，默认为航信eTerm。        可输入：ETERM或ABACUS
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string gdsType { get; set; }
    }


}
